/**
 * 
 */
package com.yidu.erp.service.ware;

import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.yidu.common.SsmMessage;
import com.yidu.erp.action.ware.vo.WareVo;
import com.yidu.erp.model.BeyondWare;

/**
 * 类的描述：药品的sercice接口
 * @author xym
 * @date 2017年11月29日
 */
public interface WareService {
	/**
	 * 显示所有药品的方法
	 * @param param 传入参数
	 * @return 查询出来的数据 wareVo对象集合
	 */
	public Map<String, Object> showAll(Map<String, Object> param);
	/**
	 * 删除的方法
	 * @param ware 药品的对象
	 * @return 消息对象
	 */
	public SsmMessage delete(BeyondWare ware);
	
	/**
	 * 增加药品的方法
	 * @param ware 药品的对象
	 * @return 消息对象
	 * 
	 */
	public SsmMessage insert(BeyondWare ware);
	/**
	 * 根据药品编号查询药品
	 * @param wareId 药品的编号
	 * @return 药品的视图对象
	 */
	public WareVo findByIdVo(String wareId);
	
	/**
	 * 根据药品编号查询药品信息
	 * @param wareId 药品的编号
	 * @return 查询ID对应的药品信息
	 */
	public BeyondWare selectByPrimaryKey(String wareId);
	/**
	 * 药品增加或者修改的方法
	 * @param ware 药品对象
	 * @param dep 合成配料的字符串
	 * @param file 图片
	 * @return 消息对象
	 * @throws NoSuchFieldException
	 * @throws SecurityException
	 * @throws NoSuchMethodException
	 * @throws IllegalAccessException
	 * @throws IllegalArgumentException
	 * @throws InvocationTargetException
	 * @throws ParseException
	 */
	public SsmMessage addOrUpdate(BeyondWare ware,String dep,MultipartFile file)throws NoSuchFieldException, SecurityException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ParseException;
	
	/**
	 * 更改商品配料的方法
	 * @param dep 配料的字符串
	 * @param wareId 商品的编号
	 * @return 是否成功
	 * @throws NoSuchFieldException
	 * @throws SecurityException
	 * @throws NoSuchMethodException
	 * @throws IllegalAccessException
	 * @throws IllegalArgumentException
	 * @throws InvocationTargetException
	 * @throws ParseException
	 */
	public SsmMessage addDep(String dep,String wareId) throws NoSuchFieldException, SecurityException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ParseException;
	/**
	 * 根据供货商编号查询药品的方法
	 * @param applyId 供货商编号
	 * @return 药品的集合
	 */
	public List<BeyondWare> findByApplyId(String applyId);
	
	/**
	 * 导入Excel文件
	 * @param file Excel文件
	 * @return
	 */
	public String readExcelFile(MultipartFile file);
}
